package com.it.d10_api_object;

public class Test {
    public static void main(String[] args) {
        // 目标： 掌握Object类提供的常用方法

//  1.toString() 作用：返回对象的字符串表示形式；存在意义：让子类重写，以便返回子类对象的内容

        Student s1 = new Student("赵敏", 23);

        //  ①
        //  System.out.println(s1.toString());

        /*
          System.out.println(s1)
          Student 对象中未重写 toString() 方法时打印： com.it.d10_api_object.Student@1b6d3586
          Student 对象中重写 toString() 方法时打印： Student{name='赵敏', age=23}
         */
        // ② ;  ①和②相等
        System.out.println(s1);


//  2.equals() 作用：判断两个对象是否相等(默认比较两个对象的地址) 存在意义：让子类重写，以便用于比较对象的内容是否相同

        Student s2 = new Student("赵敏", 23);
        /*
          System.out.println(s2.equals(s1));
          Student 对象中未重写 equals() 时打印：false
          Student 对象中重写 equals() 时打印：true
         */
        System.out.println(s2.equals(s1));

        // 比较者的类型与被比较者的类型不一样
        // System.out.println(s2.equals(new Pig())); // false

        System.out.println(s1==s2); // false

//  3、clone() 对象克隆(当某个对象调用该方法时，该方法会复制一个一模一样的新对象返回


    }
}
